$OpenBSD: miidevs,v 1.124 2015/07/19 06:30:02 yuo Exp $
/* $NetBSD: miidevs,v 1.3 1998/11/05 03:43:43 thorpej Exp $ */

/*-
 * Copyright (c) 1998 The NetBSD Foundation, Inc.
 * All rights reserved.
 *
 * This code is derived from software contributed to The NetBSD Foundation
 * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility,
 * NASA Ames Research Center.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

/*
 * List of known MII OUIs
 */
oui AMD				0x00001a	AMD
oui REALTEK			0x000020	Realtek
oui VITESSE			0x0001c1	Vitesse
oui CICADA			0x0003f1	Cicada
oui CENIX			0x000749	CENiX
oui BROADCOM2			0x000af7	Broadcom
oui RDC				0x000bb4	RDC Semi.
oui ASIX			0x000ec6	ASIX
oui BROADCOM			0x001018	Broadcom
oui 3COM			0x00105a	3com
oui ALTIMA			0x0010a9	Altima
oui ENABLESEMI			0x0010dd	Enable Semi.
oui ATHEROS			0x001374	Atheros
oui JMICRON			0x001b8c	JMicron
oui LEVEL1			0x00207b	Level 1
oui VIA				0x004063	VIA Networking
oui MARVELL			0x005043	Marvell
oui LUCENT			0x00601d	Lucent
oui QUALITYSEMI			0x006051	Quality Semi.
oui DAVICOM			0x00606e	Davicom
oui SMSC			0x00800f	Standard Microsystems
oui ICPLUS			0x0090c3	IC Plus
oui TOPICSEMI			0x0090c3	Topic Semi.
oui AGERE			0x00a0bc	Agere
oui ICS				0x00a0be	Integrated Circuit Systems
oui SEEQ			0x00a07d	Seeq
oui INTEL			0x00aa00	Intel
oui TDK				0x00c039	TDK
oui MYSON			0x00c0b4	Myson
oui PMCSIERRA			0x00e004	PMC-Sierra
oui SIS				0x00e006	Silicon Integrated Systems
oui REALTEK2			0x00e04c	Realtek
oui JATO			0x00e083	Jato Technologies
oui XAQTI			0x00e0ae	XaQti
oui PLESSEYSEMI			0x046b40	Plessey Semi.
oui NATSEMI			0x080017	National Semi.
oui TI				0x080028	Texas Instruments

/* in the 79c873, AMD uses another OUI (which matches Davicom!) */
oui xxALTIMA			0x000895	Altima
oui xxAMD			0x00606e	AMD
oui xxCICADA			0x00c08f	Cicada (alt)
oui xxINTEL			0x00f800	Intel (alt)

/* some vendors have the bits swapped within bytes
	(ie, ordered as on the wire) */
oui xxICS			0x00057d	Integrated Circuit Systems
oui xxSEEQ			0x0005be	Seeq
oui xxSIS			0x000760	Silicon Integrated Systems
oui xxBROADCOM			0x000818	Broadcom
oui xxTI			0x100014	Texas Instruments
oui xxXAQTI			0x350700	XaQti

/* Level 1 is completely different - from right to left.
	(Two bits get lost in the third OUI byte.) */
oui xxLEVEL1a			0x0004de	Level 1
oui xxLEVEL1			0x1e0400	Level 1

/* Don't know what's going on here. */
oui xxBROADCOM2			0x0050ef	Broadcom
oui xxBROADCOM3			0x00d897	Broadcom
oui xxDAVICOM			0x006040	Davicom

/* This is the OUI of the gigE PHY in the Realtek 8169S/8110S chips */
oui xxREALTEK			0x000732	Realtek

/* Contrived vendor for dcphy */
oui xxDEC			0x040440	Digital Clone

oui xxMARVELL			0x000ac2	Marvell

/*
 * List of known models.  Grouped by oui.
 */

/* AMD PHYs */
model xxAMD 79C873		0x0000	Am79C873 10/100 PHY
model AMD 79C875phy		0x0014	Am79C875 quad PHY
model AMD 79C873phy		0x0036	Am79C873 internal PHY

/* Agere PHYs */
model AGERE ET1011		0x0004	ET1011 10/100/1000baseT PHY

/* Atheros PHYs */
model ATHEROS F1		0x0001	F1 10/100/1000 PHY
model ATHEROS F2		0x0002	F2 10/100 PHY
model ATHEROS F1_7		0x0007	F1 10/100/1000 PHY

/* Altima PHYs */
model xxALTIMA AC_UNKNOWN	0x0001	AC_UNKNOWN 10/100 PHY
model xxALTIMA AC101L		0x0012	AC101L 10/100 PHY
model xxALTIMA AC101		0x0021	AC101 10/100 PHY

/* Broadcom PHYs */
model xxBROADCOM BCM5400	0x0004	BCM5400 1000baseT PHY
model xxBROADCOM BCM5401	0x0005	BCM5401 10/100/1000baseT PHY
model xxBROADCOM BCM5411	0x0007	BCM5411 10/100/1000baseT PHY
model xxBROADCOM BCM5464	0x000b	BCM5464 10/100/1000baseT PHY
model xxBROADCOM BCM5461	0x000c	BCM5461	10/100/1000baseT PHY
model xxBROADCOM BCM5462	0x000d	BCM5462 10/100/1000baseT PHY
model xxBROADCOM BCM5421	0x000e	BCM5421 10/100/1000baseT PHY
model xxBROADCOM BCM5752	0x0010	BCM5752 10/100/1000baseT PHY
model xxBROADCOM BCM5701	0x0011	BCM5701 10/100/1000baseT PHY
model xxBROADCOM BCM5706	0x0015	BCM5706 10/100/1000baseT/SX PHY
model xxBROADCOM BCM5703	0x0016	BCM5703 10/100/1000baseT PHY
model xxBROADCOM BCM5750	0x0018	BCM5750 10/100/1000baseT PHY
model xxBROADCOM BCM5704	0x0019	BCM5704 10/100/1000baseT PHY
model xxBROADCOM BCM5705	0x001a	BCM5705 10/100/1000baseT PHY
model xxBROADCOM BCM54K2	0x002e	BCM54K2 10/100/1000baseT PHY
model xxBROADCOM BCM5714	0x0034	BCM5714 10/100/1000baseT/SX PHY
model xxBROADCOM BCM5780	0x0035	BCM5780 10/100/1000baseT/SX PHY
model xxBROADCOM BCM5708C	0x0036	BCM5708C 10/100/1000baseT PHY
model xxBROADCOM2 BCM54XX	0x0007	BCM54XX 10/100/1000baseT PHY
model xxBROADCOM2 BCM5481	0x000a	BCM5481 10/100/1000baseT PHY
model xxBROADCOM2 BCM5482	0x000b	BCM5482 10/100/1000baseT PHY
model xxBROADCOM2 BCM5755	0x000c	BCM5755 10/100/1000baseT PHY
model xxBROADCOM2 BCM5787	0x000e	BCM5787 10/100/1000baseT PHY
model xxBROADCOM2 BCM5708S	0x0015	BCM5708S 1000/2500baseSX PHY
model xxBROADCOM2 BCM5709CAX	0x002c	BCM5709CAX 10/100/1000baseT PHY
model xxBROADCOM2 BCM5722	0x002d	BCM5722 10/100/1000baseT PHY
model xxBROADCOM2 BCM5784	0x003a	BCM5784 10/100/1000baseT PHY
model xxBROADCOM2 BCM5709C	0x003c	BCM5709 10/100/1000baseT PHY
model xxBROADCOM2 BCM5761	0x003d	BCM5761 10/100/1000baseT PHY
model xxBROADCOM2 BCM5709S	0x003f	BCM5709S 1000/2500baseSX PHY
model xxBROADCOM2 BCM53115	0x0038	BCM53115 10/100/1000baseT PHY
model xxBROADCOM3 BCM57780	0x0019	BCM57780 10/100/1000baseT PHY
model xxBROADCOM3 BCM5717C	0x0020	BCM5717C 10/100/1000baseT PHY
model xxBROADCOM3 BCM5719C	0x0022	BCM5719C 10/100/1000baseT PHY
model xxBROADCOM3 BCM57765	0x0024	BCM57765 10/100/1000baseT PHY
model xxBROADCOM3 BCM5720C	0x0036	BCM5720C 10/100/1000baseT PHY
model BROADCOM BCM5400		0x0004	BCM5400 1000baseT PHY
model BROADCOM BCM5401		0x0005	BCM5401 1000baseT PHY
model BROADCOM BCM5411		0x0007	BCM5411 1000baseT PHY
model BROADCOM 3C905B		0x0012	3C905B internal PHY
model BROADCOM 3C905C		0x0017	3C905C internal PHY
model BROADCOM BCM5221		0x001e	BCM5221 100baseTX PHY
model BROADCOM BCM5201		0x0021	BCM5201 10/100 PHY
model BROADCOM BCM5214		0x0028	BCM5214 Quad 10/100 PHY
model BROADCOM BCM5222		0x0032	BCM5222 Dual 10/100 PHY
model BROADCOM BCM5220		0x0033	BCM5220 10/100 PHY
model BROADCOM BCM4401		0x0036	BCM4401 10/100baseTX PHY
model BROADCOM2 BCM5906		0x0004	BCM5906 10/100baseTX PHY

/* Cicada PHYs (now owned by Vitesse) */
model xxCICADA CS8201B		0x0021	CS8201 10/100/1000TX PHY
model CICADA CS8201		0x0001	CS8201 10/100/1000TX PHY
model CICADA CS8204		0x0004	CS8204 10/100/1000TX PHY
model CICADA VSC8211		0x000b	VSC8211 10/100/1000 PHY
model CICADA CS8201A		0x0020	CS8201 10/100/1000TX PHY
model CICADA CS8201B		0x0021	CS8201 10/100/1000TX PHY
model CICADA CS8244		0x002c	CS8244 10/100/1000TX PHY

/* Davicom PHYs */
model xxDAVICOM DM9101		0x0000	DM9101 10/100 PHY
model DAVICOM DM9102		0x0004	DM9102 10/100 PHY
model DAVICOM DM9601		0x000c	DM9601 10/100 PHY

/* Contrived vendor/model for dcphy */
model xxDEC xxDC		0x0001	DC

/* Enable Semi. PHYs (Agere) */
model ENABLESEMI LU3X31FT	0x0001	LU3X31FT
model ENABLESEMI LU3X31T2	0x0002	LU3X31T2
model ENABLESEMI 88E1000S	0x0004	88E1000S
model ENABLESEMI 88E1000	0x0005	88E1000

/* IC Plus PHYs */
model ICPLUS IP100		0x0004	IP100 10/100 PHY
model ICPLUS IP101		0x0005	IP101 10/100 PHY
model ICPLUS IP1000A		0x0008	IP1000A 10/100/1000 PHY
model ICPLUS IP1001		0x0019	IP1001 10/100/1000 PHY

/* Integrated Circuit Systems PHYs */
model xxICS 1890		0x0002	ICS1890 10/100 PHY
model xxICS 1892		0x0003	ICS1892 10/100 PHY
model xxICS 1893		0x0004	ICS1893 10/100 PHY

/* Intel PHYs */
model xxINTEL I82553		0x0000	i82553 10/100 PHY
model INTEL I82555		0x0015	i82555 10/100 PHY
model INTEL I82562G		0x0031	i82562G 10/100 PHY
model INTEL I82562EM		0x0032	i82562EM 10/100 PHY
model INTEL I82562ET		0x0033	i82562ET 10/100 PHY
model INTEL I82553		0x0035	i82553 10/100 PHY

/* Jato Technologies PHYs */
model JATO BASEX		0x0000	Jato 1000baseX PHY

/* JMicron PHYs */
model JMICRON JMP211		0x0021	JMP211 10/100/1000 PHY
model JMICRON JMP202		0x0022	JMP202 10/100 PHY

/* Level 1 PHYs */
model xxLEVEL1 LXT970		0x0000	LXT970 10/100 PHY
model xxLEVEL1a LXT971		0x000e	LXT971 10/100 PHY
model LEVEL1 LXT1000_OLD	0x0003	LXT1000 10/100/1000 PHY
model LEVEL1 LXT1000		0x000c	LXT1000 10/100/1000 PHY

/* Lucent PHYs */
model LUCENT LU6612		0x000c	LU6612 10/100 PHY
model LUCENT LU3X51FT		0x0033	LU3X51FT 10/100 PHY
model LUCENT LU3X54FT		0x0036	LU3X54FT 10/100 PHY

/* Marvell PHYs */
model xxMARVELL E1000_5		0x0002	88E1000 5 Gigabit PHY
model xxMARVELL E1000_6		0x0003	88E1000 6 Gigabit PHY
model xxMARVELL E1000_7		0x0005	88E1000 7 Gigabit PHY
model xxMARVELL E1111		0x000c	88E1111 Gigabit PHY
model MARVELL E1000_1		0x0000	88E1000 1 Gigabit PHY
model MARVELL E1011		0x0002	88E1011 Gigabit PHY
model MARVELL E1000_2		0x0003	88E1000 2 Gigabit PHY
model MARVELL E1000S		0x0004	88E1000S Gigabit PHY
model MARVELL E1000_3		0x0005	88E1000 3 Gigabit PHY
model MARVELL E1000_4		0x0006	88E1000 4 Gigabit PHY
model MARVELL E3082		0x0008	88E3082 10/100 PHY
model MARVELL E1112		0x0009	88E1112 Gigabit PHY
model MARVELL E1149		0x000b	88E1149 Gigabit PHY
model MARVELL E1111		0x000c	88E1111 Gigabit PHY
model MARVELL E1116		0x0021	88E1116 Gigabit PHY
model MARVELL E1118		0x0022	88E1118 Gigabit PHY
model MARVELL E1116R		0x0024	88E1116R Gigabit PHY
model MARVELL E3016		0x0026	88E3016 10/100 PHY
model MARVELL PHYG65G		0x0027	PHYG65G Gigabit PHY

/* Myson PHYs */
model MYSON MTD972		0x0000	MTD972 10/100 PHY

/* National Semi. PHYs */
model NATSEMI DP83840		0x0000	DP83840 10/100 PHY
model NATSEMI DP83843		0x0001	DP83843 10/100 PHY
model NATSEMI DP83815		0x0002	DP83815 10/100 PHY
model NATSEMI DP83847		0x0003	DP83847 10/100 PHY
model NATSEMI DP83891		0x0005	DP83891 10/100/1000 PHY
model NATSEMI DP83861		0x0006	DP83861 10/100/1000 PHY
model NATSEMI DP83865		0x0007	DP83865 10/100/1000 PHY

/* Plessey Semi. PHYs */
model PLESSEY NWK914		0x0000	NWK914 10/100 PHY

/* Quality Semi. PHYs */
model QUALITYSEMI QS6612	0x0000	QS6612 10/100 PHY

/* RDC Semi. PHYs */
model RDC R6040			0x0003	R6040 10/100 PHY

/* Realtek PHYs */
model xxREALTEK RTL8251		0x0000	RTL8251 PHY
model xxREALTEK RTL8201E	0x0008	RTL8201E 10/100 PHY 
model xxREALTEK RTL8169S	0x0011	RTL8169S/8110S/8211 PHY
model REALTEK RTL8201L		0x0020	RTL8201L 10/100 PHY

/* Seeq PHYs */
model xxSEEQ 80220		0x0003	80220 10/100 PHY
model xxSEEQ 84220		0x0004	84220 10/100 PHY
model xxSEEQ 80225		0x0008	80225 10/100 PHY

/* Silicon Integrated Systems PHYs */
model xxSIS 900			0x0000	900 10/100 PHY

/* Standard Microsystems PHYs */
model SMSC LAN83C185		0x000a	LAN83C185 10/100 PHY

/* Texas Instruments PHYs */
model xxTI TLAN10T		0x0001	ThunderLAN 10baseT PHY
model xxTI 100VGPMI		0x0002	ThunderLAN 100VG-AnyLan PHY
model xxTI TNETE2101		0x0003	TNETE2101 PHY

/* TDK PHYs */
model TDK 78Q2120		0x0014	78Q2120 10/100 PHY
model TDK 78Q2121		0x0015	78Q2121 100baseTX PHY

/* VIA Networking PHYs */
model VIA VT6103		0x0032	VT6103 10/100 PHY
model VIA VT6103_2		0x0034	VT6103 10/100 PHY

/* Vitesse PHYs */
model VITESSE VSC8601		0x0002	VSC8601 10/100/1000 PHY

/* XaQti PHYs */
model XAQTI XMACII		0x0000	XMAC II Gigabit PHY
